package com.szrt.ch04.utils.encoding;

import java.security.MessageDigest;
import java.util.concurrent.SynchronousQueue;

public class MD5Util {

	
	public static void main(String[] args) {
		
		
		System.out.println(getMD5("123456"));
		System.out.println(getMD5("123456").length());
		System.out.println(0xff);
		
	}
	
	
	
	
	/**
	 * 形成md5加密
	 * @param password
	 * @return
	 */
	public static String getMD5(String password) {  
		  
        try {  
            // 得到一个信息摘要器  
            MessageDigest digest = MessageDigest.getInstance("md5");  
            byte[] result = digest.digest(password.getBytes());  
            StringBuffer buffer = new StringBuffer();  
            // 把没一个byte 做一个与运算 0xff;  
            for (byte b : result) {  
            	
            	System.out.println("b=>"+b);
            	
                // 与运算   讲
                int number = b & 0xff;// 加盐  
                
                System.out.println("b=>"+b +" number=>"+number);
                String str = Integer.toHexString(number);  
                
                System.out.println(str);
                if (str.length() == 1) {  
                    buffer.append("0");  
                }  
                buffer.append(str);  
            }  
  
            // 标准的md5加密后的结果  
            return buffer.toString();  
        } catch (Exception e) {  
            e.printStackTrace();  
            return "";  
        }  
  
    }  
}
